package com.haixiaoke.saas.user.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.haixiaoke.saas.common.annotation.Excel;
import com.haixiaoke.saas.common.core.domain.BaseEntity;
import lombok.Data;

/**
 * 用户对象 biz_user
 *
 * @author xiaolong
 * @date 2025-04-01
 */
@Data
public class User extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 用户名
     */
    @Excel(name = "用户名")
    private String userName;

    /**
     * 用户昵称
     */
    @Excel(name = "用户昵称")
    private String nickName;

    /**
     * 手机号码
     */
    @Excel(name = "手机号码")
    private String phone;

    /**
     * 性别：1男 2女
     */
    @Excel(name = "性别：1男 2女")
    private String sex;

    /**
     * 密码
     */
    @Excel(name = "密码")
    private String password;

    /**
     * 盐值
     */
    @Excel(name = "盐值")
    private String salt;

    /**
     * 微信OPENID
     */
    @Excel(name = "微信OPENID")
    private String openId;

    /**
     * 头像
     */
    @Excel(name = "头像")
    private String profilePhoto;

    /**
     * 身份证号码
     */
    @Excel(name = "身份证号码")
    private String cardNumber;

    /**
     * 人脸照
     */
    @Excel(name = "人脸照")
    private String facePic;

    /**
     * 实名认证：0未认证 1已认证
     */
    @Excel(name = "实名认证：0未认证 1已认证")
    private String certificationStatus;

    /**
     * 实名认证时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实名认证时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date certificationTime;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最后登录时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastLoginTime;

    /**
     * 账号状态：0.正常；1.禁用；2.注销；
     */
    @Excel(name = "账号状态：0.正常；1.禁用；2.注销；")
    private String accountStatus;


    /**
     * 自定义字段：再次输入密码
     */
    private String againPassword;

    /**
     * 自定义字段：旧密码
     */
    private String oldPassword;

    /**
     * 自定义字段：验证码
     */
    private String code;

    /**
     * 自定义字段：设备数量
     */
    private String deviceLockNum;
}
